# week05：数据结构之列表

# 列表认识开始、结束和步长值：
# 如果没有指定开始值，则默认为0；
# 如果没有指定结束指，则取列表允许的最大值；
# 如果没有指定步长值，则默认步长为1.

# 首先，列表也是一个变量，构建列表需要用”[]“，里面的数据之间用”,“进行分隔。
# 列表是有顺序的一组值，顺序是从0位置开始的
squares = [1,4,9,16,25]
names_str = "Mike, Mary,Jan,Jack"
names_list = ["MIke","Marry","Jan","jack"]
# 取值index索引（单个值） and slice切片（多个值或单个值）

print(names_str[0])
print(names_list[0])
# 运算会发现 计算机取值从0开始

# 知识点1：slices(切片) 数值是指 values在list中的位置
names = ["mike","mary","jan","jack"]
# 1.正数
print(names[-2])
# 1.计算机里面用量用过就不能再用了 0指MIke 用过不能再用了
# 2.    -4，-3，-2，-1，0,1,2,3（jack=-1）

print(names[:])
# 1.在从左往右取值时，右边的值取不到
print(names[1:3])
# 如果从0开始取值，0可省略不写
print(names[:3])

# 2.在从右往左取值时,右边的值取不到
print(names[-3:-1])

# 怎样才能取到-1这个位置的值呢？ 右侧不写任何值
print(names[-3:])

# 3.特殊情况 可以指定 slice 切片的步长 step (没太懂）
num_list = list(range(10))
print(num_list)
print(num_list[0:7:3])



names = "xiangqian","tuola","gulu"
print(names[0])
# 知识点2：用户数据列表创建
users_list = ["xiangqian","tuola","gulu"]
password_list = [123456,654321,345678]
users_age_list = [18,19,20]

# 列表的嵌套
info_list = [["xiangqian",123456,18],["tuola",654321,19],["gulu",345678,20]]

print(users_list[0])
print(password_list[0])
print(users_age_list[-3])
print(info_list[0])